package com.example.consumptionrecords.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

import java.util.Collections;

/**
 * SunJingxuan
 * 2022 \ 08 \ 09
 */
@Configuration
public class GlobalCorsConfig {

	/**
	 * 允许跨域调用的过滤器
	 */
	@Bean
	public CorsFilter corsFilter() {
		CorsConfiguration corsConfiguration = new CorsConfiguration();
		//1,允许任何来源
		corsConfiguration.setAllowedOriginPatterns(Collections.singletonList("*"));
		//2,允许任何请求头
		corsConfiguration.addAllowedHeader(CorsConfiguration.ALL);
		//3,允许任何方法
		corsConfiguration.addAllowedMethod(CorsConfiguration.ALL);
		//4,允许凭证
		corsConfiguration.setAllowCredentials(true);

		UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
		source.registerCorsConfiguration("/**", corsConfiguration);
		return new CorsFilter(source);
	}
}
